Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: improve jest speed on both local and CI #32096

Merged
merged 2 commits into from
Jul 25, 2024

Conversation

Hotell
Copy link
Contributor

@Hotell Hotell commented Jul 24, 2024

Previous Behavior

New Behavior

We use most optimal setting for maxWorkers tested on various environments to gather the most optimal speed

whole repo

lage test

Before After
15m 52s 13m 14s / 𝚫 17% FASTER

v9 libs

nx run-many -t test -p tag:vNext --exclude 'tag:tools,apps/**'

Before After
7m 15s 4m 25s / 𝚫 40% FASTER

v8 libs

nx run-many -t test -p tag:v8 --exclude 'tag:vNext,apps/**'

Before After
2m 39s 2m 16s / 𝚫 15% FASTER

v0 libs

nx run-many -t test -p tag:react-northstar --exclude 'tag:vNext,apps/**'

Before After
4m 44s 4m 27s / 𝚫 6% FASTER

Related Issue(s)

@fabricteam
Copy link
Collaborator

fabricteam commented Jul 24, 2024

🕵 fluentui-web-components-v3 No visual regressions between this PR and main

@fabricteam
Copy link
Collaborator

fabricteam commented Jul 24, 2024

Perf Analysis (@fluentui/react-components)

Scenario Render type Master Ticks PR Ticks Iterations Status
FluentProviderWithTheme virtual-rerender 36 35 10 Possible regression
All results

Scenario Render type Master Ticks PR Ticks Iterations Status
Avatar mount 631 652 5000
Button mount 297 311 5000
Field mount 1092 1158 5000
FluentProvider mount 698 722 5000
FluentProviderWithTheme mount 89 82 10
FluentProviderWithTheme virtual-rerender 36 35 10 Possible regression
FluentProviderWithTheme virtual-rerender-with-unmount 80 68 10
MakeStyles mount 881 861 50000
Persona mount 1728 1691 5000
SpinButton mount 1367 1392 5000
SwatchPicker mount 1625 1640 5000

@fabricteam
Copy link
Collaborator

fabricteam commented Jul 24, 2024

🕵 fluentuiv8 No visual regressions between this PR and main

@fabricteam
Copy link
Collaborator

fabricteam commented Jul 24, 2024

📊 Bundle size report

✅ No changes found

@fabricteam
Copy link
Collaborator

fabricteam commented Jul 24, 2024

🕵 FluentUIV0 No visual regressions between this PR and main

@fabricteam
Copy link
Collaborator

fabricteam commented Jul 24, 2024

Perf Analysis (@fluentui/react-northstar)

Perf tests with no regressions
Scenario Current PR Ticks Baseline Ticks Ratio
TreeWith60ListItems.default 94 82 1.15:1
RadioGroupMinimalPerf.default 283 251 1.13:1
FlexMinimalPerf.default 169 154 1.1:1
ListNestedPerf.default 338 308 1.1:1
AttachmentMinimalPerf.default 83 77 1.08:1
AvatarMinimalPerf.default 120 111 1.08:1
GridMinimalPerf.default 206 190 1.08:1
LayoutMinimalPerf.default 215 200 1.08:1
ButtonMinimalPerf.default 93 88 1.06:1
ReactionMinimalPerf.default 213 201 1.06:1
TextAreaMinimalPerf.default 299 283 1.06:1
CheckboxMinimalPerf.default 1178 1123 1.05:1
MenuMinimalPerf.default 520 495 1.05:1
SkeletonMinimalPerf.default 203 194 1.05:1
ButtonSlotsPerf.default 319 307 1.04:1
CarouselMinimalPerf.default 260 251 1.04:1
ChatWithPopoverPerf.default 208 200 1.04:1
HeaderMinimalPerf.default 204 196 1.04:1
SliderMinimalPerf.default 750 722 1.04:1
VideoMinimalPerf.default 453 435 1.04:1
BoxMinimalPerf.default 200 194 1.03:1
LoaderMinimalPerf.default 187 182 1.03:1
StatusMinimalPerf.default 385 374 1.03:1
TableMinimalPerf.default 236 230 1.03:1
AnimationMinimalPerf.default 303 296 1.02:1
ChatDuplicateMessagesPerf.default 156 153 1.02:1
DividerMinimalPerf.default 211 207 1.02:1
ListWith60ListItems.default 378 369 1.02:1
TableManyItemsPerf.default 1115 1096 1.02:1
AccordionMinimalPerf.default 87 86 1.01:1
AlertMinimalPerf.default 171 170 1.01:1
DatepickerMinimalPerf.default 3601 3573 1.01:1
DropdownManyItemsPerf.default 396 394 1.01:1
DropdownMinimalPerf.default 1434 1420 1.01:1
EmbedMinimalPerf.default 1912 1898 1.01:1
PopupMinimalPerf.default 349 345 1.01:1
RefMinimalPerf.default 109 108 1.01:1
TextMinimalPerf.default 191 189 1.01:1
AttachmentSlotsPerf.default 651 652 1:1
HeaderSlotsPerf.default 464 462 1:1
InputMinimalPerf.default 536 535 1:1
ListMinimalPerf.default 306 306 1:1
MenuButtonMinimalPerf.default 949 949 1:1
RosterPerf.default 1595 1594 1:1
CustomToolbarPrototype.default 1476 1481 1:1
ChatMinimalPerf.default 445 449 0.99:1
ImageMinimalPerf.default 228 231 0.99:1
LabelMinimalPerf.default 217 219 0.99:1
ProviderMergeThemesPerf.default 651 659 0.99:1
SegmentMinimalPerf.default 199 201 0.99:1
SplitButtonMinimalPerf.default 2234 2254 0.99:1
FormMinimalPerf.default 214 219 0.98:1
ProviderMinimalPerf.default 206 210 0.98:1
IconMinimalPerf.default 375 383 0.98:1
TreeMinimalPerf.default 469 478 0.98:1
ToolbarMinimalPerf.default 533 549 0.97:1
TooltipMinimalPerf.default 1253 1292 0.97:1
ButtonOverridesMissPerf.default 622 650 0.96:1
CardMinimalPerf.default 300 314 0.96:1
DialogMinimalPerf.default 435 452 0.96:1
ItemLayoutMinimalPerf.default 687 714 0.96:1
PortalMinimalPerf.default 82 86 0.95:1
ListCommonPerf.default 383 413 0.93:1

@fabricteam
Copy link
Collaborator

fabricteam commented Jul 24, 2024

Perf Analysis (@fluentui/react)

No significant results to display.

All results

Scenario Render type Master Ticks PR Ticks Iterations Status
BaseButton mount 647 643 5000
Breadcrumb mount 1700 1695 1000
Checkbox mount 1669 1740 5000
CheckboxBase mount 1503 1490 5000
ChoiceGroup mount 2978 2973 5000
ComboBox mount 672 671 1000
CommandBar mount 6600 6589 1000
ContextualMenu mount 13178 13001 1000
DefaultButton mount 789 796 5000
DetailsRow mount 2201 2225 5000
DetailsRowFast mount 2271 2226 5000
DetailsRowNoStyles mount 2040 2027 5000
Dialog mount 2836 2861 1000
DocumentCardTitle mount 229 241 1000
Dropdown mount 2055 1998 5000
FocusTrapZone mount 1139 1201 5000
FocusZone mount 1103 1079 5000
GroupedList mount 42270 42606 2
GroupedList virtual-rerender 20596 20452 2
GroupedList virtual-rerender-with-unmount 52060 51892 2
GroupedListV2 mount 228 227 2
GroupedListV2 virtual-rerender 217 216 2
GroupedListV2 virtual-rerender-with-unmount 239 234 2
IconButton mount 1146 1160 5000
Label mount 341 340 5000
Layer mount 2721 2736 5000
Link mount 389 417 5000
MenuButton mount 976 984 5000
MessageBar mount 21180 21219 5000
Nav mount 2075 2047 1000
OverflowSet mount 817 806 5000
Panel mount 1819 1854 1000
Persona mount 748 766 1000
Pivot mount 950 909 1000
PrimaryButton mount 936 927 5000
Rating mount 4654 4601 5000
SearchBox mount 937 927 5000
Shimmer mount 1914 1931 5000
Slider mount 1355 1339 5000
SpinButton mount 3049 3115 5000
Spinner mount 384 391 5000
SplitButton mount 1955 1903 5000
Stack mount 436 432 5000
StackWithIntrinsicChildren mount 876 913 5000
StackWithTextChildren mount 2816 2767 5000
SwatchColorPicker mount 6391 6498 5000
TagPicker mount 1459 1431 5000
Text mount 379 398 5000
TextField mount 946 956 5000
ThemeProvider mount 859 840 5000
ThemeProvider virtual-rerender 604 591 5000
ThemeProvider virtual-rerender-with-unmount 1341 1330 5000
Toggle mount 617 633 5000
buttonNative mount 197 193 5000

@Hotell Hotell marked this pull request as ready for review July 24, 2024 15:04
@Hotell Hotell requested a review from a team as a code owner July 24, 2024 15:04
Copy link
Member

@TristanWatanabe TristanWatanabe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀

@Hotell Hotell merged commit daafbc0 into microsoft:master Jul 25, 2024
21 checks passed
@Hotell Hotell deleted the ci/perf/improve-jest-speed branch July 25, 2024 12:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants